package service;

import java.util.ArrayList;

import bean.Localidad;
import bean.VOList;
import bean.vo.LocalidadVO;

@SuppressWarnings({"unchecked"})
public class ServiciosLocalidad {
	
	protected static Localidad buscarLocalidad (String nombre) throws Exception {
		Localidad localidad = (Localidad) SistemaCVR.getInstancia().buscarEntidad(new Localidad(nombre));
		return localidad;
	}
	
	public static LocalidadVO buscarLocalidad (LocalidadVO l) throws Exception {
		Localidad localidad = ServiciosLocalidad.buscarLocalidad(l.getNombre());
		return localidad != null ? localidad.getVO() : null;
	}
	
	public static ArrayList <LocalidadVO> getLocalidades() throws Exception{
		return new VOList<LocalidadVO>().getVoList(SistemaCVR.getInstancia().getEntidades(Localidad.class.getName()));
	}
	
	public static void crearLocalidad (LocalidadVO l) throws Exception {
		if (ServiciosLocalidad.buscarLocalidad(l.getNombre()) == null) {
			Localidad localidad = new Localidad(l.getNombre());
			SistemaCVR.getInstancia().agregarEntidad(localidad);
		} else {
			throw new Exception("ERROR - Ya existe una Localidad con el nombre ingresado.");
		}
	}
	
	public static void eliminarLocalidad (LocalidadVO l) throws Exception {
		Localidad localidad = ServiciosLocalidad.buscarLocalidad(l.getNombre());
		if (localidad != null ){
			SistemaCVR.getInstancia().eliminarEntidad(localidad);
		} else {
			throw new Exception("ERROR - No existe una Localidad con el nombre ingresado.");
		}
	}
}
